home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / CMaster Demo v2.0.3 / What is CMaster? < prev   
Encoding:
Text File  |  1994-09-24  |  18.7 KB  |  394 lines  |  [ttro/ttxt]

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. CMaster Version installs into THINK 5/6/7 and Symantec C++ for Macintosh, and enhances its editing environment. Users from around the world have declared on their registration cards that CMaster both improves their productivity and their enjoyment of programming. CMaster 1 was first introduced for THINK 4 in 1991, and free updates to it have been posted to online services since that date. CMaster 2 was introduced in June, 1994.
  11.  
  12. CMaster 1 received a 5-mouse rating from MacUser.
  13.  
  14. Read on for CMaster 2 feature information, a screen shot of CMaster in action, how to contact the publisher (Jersey Scientific Inc), and a review of CMaster posted on the Internet.
  15.  
  16. BENEFITS:
  17.  
  18. CMaster installs inside THINK Project Manager, and enhances its environment. It provides programmer tools which reduce the time it takes to navigate and build code. 
  19.  
  20. Also, it lets you modify the programming environment in ways that best suit your desires; for instance, you can access almost all features from either the keyboard, menus, or by pressing on icons. In addition, you can decide where to put various window widgets, and color then as well as window text and the background.
  21.  
  22. CMaster was designed by developers who use CMaster and THINK compilors several hours a day, and whose goal is to have their computers do the tedious tasks so they can concentrate on the creative aspects of programming.
  23.  
  24. FEATURES:
  25.  
  26. CMaster's features can be accessed through a menu bar located in the window title bar, through an icon bar located on the left side of text windows, or through keyboard equivalents. Several dialog boxes chock full of checkboxes and radio buttons provide customization options, and allow disabling of either or both the menu and icon bars.
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. CMaster Version Features:
  53.  • Jump to any function, #pragma marks, start and end of file and functions, and index through a file function by function
  54.  • Function prototyper works on an individual function or a whole file; accepts both ANSI style and older first edition function declarations
  55. • Save and retrieve text using push-down stack style clipboards
  56. • MPW-style window position save and restore
  57. • Comment/uncomment with /*...*/ or // style comments, or #ifdef blocks of text
  58. • Set and goto markers with one mouse click
  59. • Paren/brace/bracket/comment "kissing"
  60. • ENTER key returns you to previous place of editing
  61. • Make windows outside the project tree hierarchy read-only
  62. • C-oriented double clicking selects expressions like "(*foo)->goop[i].val" quickly
  63. • Double-click a word and quickly search forwards or backwards for other occurrences
  64. • Keyboard functions like line join, select line, move forward one word, etc
  65. • 'vers' resource editor
  66. • Multiple monitor zooming and cleanup.
  67. • Record and playback keyboard macros.
  68. • Glossaries that expand varaibles such as the time and current file name.
  69. • Develop your own CMaster externals with the enclosed developer kit.
  70. • Keyboard equivalent feature lets you map key strokes to most features, including Macros, Glossaries, and AppleScripts.
  71.  
  72. See the README file in the CMaster Demo folder for more information. You can write us for more information at:
  73.  
  74. Jersey Scientific, Inc
  75. 291 Springfield Ave Ste 201
  76. Berkeley Heights  NJ  07922
  77. USA
  78.  
  79. However, the best way for you to contact us is by emailing us at one of the below addresses:
  80. CSI: 70400,3361
  81. APPLELINK: JERSCI
  82. INTERNET: 70400.3361@compuserve.com
  83.  
  84. You could FAX us at:
  85. FAX: 908.464.3458
  86.  
  87. If all else fails, you can call us at:
  88. PHONE: 212.736.0406
  89.  
  90.  
  91.  
  92. CMASTER VERSION 1 REVIEW #1:
  93. I've had a couple people ask me about the CMaster package I mentioned,
  94. so I thought I'd post a more thorough explanation of what it is and
  95. what it does.
  96.  
  97. First of all, CMaster installs (when you install the package) a couple
  98. of resources into THINK C and modifies two others in order to patch
  99. itself into THINK C when a project opens (including a new WDEF and a
  100. couple of code resources).  It patches a couple of system routines
  101. (e.g. GetNextEvent/WaitNextEvent) and a couple of THINK C routines --
  102. all of this so that CMaster sees Events before THINK C and can modify
  103. or handle them first.  The bulk of CMaster is stored in a file in the
  104. System Folder, along with a prefs file, and is loaded in as necessary.
  105.  
  106. Basically, CMaster is an extension to THINK C, adding a number of
  107. editing capabilities that are (in my opinion) quite useful to the
  108. programmer.
  109.  
  110. When you open up a file (source or headers), you get a window that is
  111. somewhat modified from the standard editor window.  There CMaster puts a
  112. row of clickable icons down the left side of the window (each performs a
  113. different function -- more on this later), the title bar is modified to have
  114. one or more popup menus, and one menu (called, not surprisingly, "CMaster")
  115. is added to the menuBar.
  116.  
  117. The icons along the left edge of the window perform a number of functions,
  118. including:
  119.  
  120.   - forward/reverse searches
  121.   - commenting/uncommenting the selected text (or, if a user-definable
  122.     modifier key is pressed, inserting/removing #ifdef/#endif around the
  123.     selected text)
  124.   - multiple clipboards, each of which can be a first-in-first-out stack
  125.     (and can be modifier-clicked to show what is in the clipboard)
  126.   - several markers (allows you to mark a location in your code by clicking
  127.     on the icon and return to it later by clicking in the lower half of the
  128.     icon later -- on a mouseDown for longer than some definable number of
  129.     ticks, this icon will show the context of the mark)
  130.   - produce function prototypes of all of the functions within the current
  131.     selection (or the whole file if no selection), pushing the prototypes
  132.     onto the clipboard for pasting wherever you want
  133.   - scroll the window until the cursor is at the {top,middle,bottom} of the
  134.     screen OR with a modifier key, go to {top,middle,bottom} of the file
  135.     (with command key) or the current function (with option key).
  136.  
  137. The menus that are available to be put on the window's title bar are:
  138.  
  139.   - C -- the same as the CMaster menu put in the main menubar
  140.   - Actions -- menu equivalents to the icons
  141.   - Markers -- a list of all of the C functions in the file, lines
  142.                beginning with "#pragma mark", and any THINK C 5.0 marks
  143.                (listed in the order in the file, or, with a modifier key,
  144.                in alphabetical order); selecting one of these items jumps
  145.                directly to that function, line or marker
  146.   - Files -- a list of all #included files (don't need a modifier key)
  147.  
  148. The CMaster menu has several items that put up dialog windows to modify
  149. CMasters actions, including which icons to show, which menus to use, etc.
  150. Furthermore, CMaster has user-definable key-equivalents to all of its
  151. functions and to some of those of THINK C and to some other functions
  152. (e.g. forward character delete, line join, etc.).
  153.  
  154. Some other functions that I've gotten very used to having (i.e. I would
  155. be frustrated if I had to go back to programming without them) are:
  156.  
  157.   - "Kissing" -- when you type a right {parenthesis,bracket,brace},
  158.     CMaster briefly highlights the matching left {parenthesis,bracket,brace}
  159.     or beeping if it cannot find the matching one (this is definable --
  160.     you can turn off any of ')', ']', or '}', and the beeping function).
  161.   - Window location memory using the same resource ('MPSR' # 1005) that
  162.     MPW uses (also includes the position of the scrolling of the file and
  163.     the current selection).  CMaster allows you to use, ignore, or
  164.     selectively use this info.
  165.   - CMaster includes a "SnapBack" function -- if you use the Marker menu
  166.     or THINK C's "Find..." to go to another part of your file (such that
  167.     the old selection point is off the screen), then the Enter key will
  168.     SnapBack to your old insertion point.
  169.   - "Animated Thumb" -- the thumb of the scroll-bar allows you to scan
  170.     through the file in real-time as you drag the thumb.
  171.   - THINK C's double-click selects an alphanumeric word.  CMaster modifies
  172.     this so that if it is a CONTROL-double-click, it uses more of a C
  173.     oriented definition of "word"; for example, a CONTROL-double-click on
  174.     either "foo" or "bar" of "foo[0]->bar" would select the whole string.
  175.   - a 'vers' editor (it assumes you use the convention of naming your
  176.     project's resource file as projectname.rsrc) to create and modify
  177.     both ID 0 and ID 1 'vers' version resources.
  178.  
  179.  
  180. Well, this is a summary of CMaster.  On a more subjective level, I have
  181. found it very useful, especially the prototype generator (with THINK C 5.0
  182. having the option of requiring prototypes, it is WONDERFUL to be able to
  183. quickly generate the prototypes of all the functions in a source file),
  184. and the {[(-kissing feature (highlighting the matching left one, beep if
  185. you forgot to put one in :-).  And the Markers menu is invaluable --
  186. especially in debugging code -- it has saved me much time being able to
  187. jump directly from one function to another without the necessity of
  188. searching for functions in long source files.
  189.  
  190. Oh, the last price I heard was [CMaster 1 Price] (but that was some time ago, so
  191. don't hold me to it).  Address, phone number, etc., for Jersey Scientific:
  192.  
  193.    Jersey Scientific, Inc.
  194.    545 Eighth Ave., 19th Floor
  195.    New York, NY 10018
  196.  
  197.    (212) 736-0406
  198.    FAX: (212) 947-4981
  199.    e-mail:   Applelink:  jersci
  200.               Internet:  jersci@applelink.apple.com
  201.             Compuserve:  70400,3361
  202.  
  203.  
  204. If you send e-mail to them, include your USMail address in your e-mail so
  205. that they can send you whatever info you need.  (Apparently it costs them
  206. $$$ to send stuff from Applelink.)
  207.  
  208.  
  209. (Standard disclaimer:  I have no connection with Jersey Scientific other than
  210. being a satisfied CMaster customer.   And as for the AAE Dept of UIUC or the
  211. UIUC in general ... I'm just a grad student ... they hardly know I exist. :-)
  212.  
  213.  
  214. Erik A. Johnson        \    Internet: johnsone@uxh.cso.uiuc.edu     \       |
  215. ------------------------\    AmericaOnline: ErikAJ                   \    --+--
  216. Graduate Student         \--------------------------------------------\     |
  217. Aero/Astro Engineering    \  "Jesus said to him, 'I am the way, and    \    |
  218. University of Illinois at  \  the truth, and the life; no one comes to  \   |
  219.    Urbana-Champaign (UIUC)  \  the Father except through me.'" (Jn14:6)  \
  220.  
  221.  
  222.  
  223.  
  224. REVIEW 2:
  225. Taken from TidBITS#172/12-Apr-93
  226. Copyright 1990-1993 Adam & Tonya Engst.
  227. Used with permission.
  228.  
  229. ---
  230. CMASTER VERSION 1 REVIEW #2
  231.  
  232.   by Andrew Johnston -- 71101.556@compuserve.com
  233.      President, Johnston/Johnston Consulting, Macintosh Developer
  234.  
  235.   Jersey Scientific's CMaster is an extension for Symantec's THINK C
  236.   that is 90 percent enhancements to THINK C's rather austere
  237.   editor, and 10 percent enhancements to THINK C's project
  238.   environment. THINK C's editor has always been ripe for
  239.   improvement, and CMaster provides a useful set of tools that
  240.   either adds new functionality or improves access to existing
  241.   features through an iconic palette.
  242.  
  243.   CMaster is compatible with THINK C 4.0.x or newer and System 6.0.5
  244.   and newer, although some features require THINK C 5.0.x. I used
  245.   CMaster version 1.0.9 on both a Mac IIcx with a 25 MHz Radius
  246.   Rocket 040 accelerator and on a PowerBook 170, both under System
  247.   7.1.
  248.  
  249.   CMaster patches itself into THINK C and intercepts several THINK C
  250.   routines including GetNextEvent, which lets CMaster intercept many
  251.   events before THINK C sees them. CMaster does this well, and this
  252.   arrangement caused no crashes. CMaster loads when you open a THINK
  253.   C project and uses around 77K of THINK C's application heap. You
  254.   can disable CMaster by holding down the option key when opening a
  255.   project file.
  256.  
  257.  
  258. What it does
  259.   On the left side of each editor window, CMaster icons provide
  260.   navigation aids, searching, block commenting, multiple clipboards,
  261.   general placemarkers, a function prototype generator, a function
  262.   navigator, a pop-up function name menu, and a header file pop-up
  263.   menu. In addition, CMaster has a slew of keyboard-only commands
  264.   that join lines, split lines, etc. You can tie almost every
  265.   CMaster action to a user-defined keyboard command, and you can
  266.   modify CMaster's palette.
  267.  
  268.   Several tools duplicate built-in THINK C features (e.g. markers
  269.   and the headers files pop-up menus), but they seem to simplify
  270.   access. However, CMaster uses its own parsing routines to
  271.   determine the placement of the function markers that allow CMaster
  272.   to update the function marker list when you type in a new function
  273.   definition. No more running your source code through a "marker"
  274.   application or explicitly marking functions within THINK C.
  275.   CMaster also allows the use of the "#pragma mark xxx" syntax to
  276.   insert custom non-function header markers into source code.
  277.  
  278.   The more-interesting editor tools include multiple clipboards and
  279.   multiple placemarkers. Up to four clipboards can be active at a
  280.   time - each with both a global and local clipboard attached. You
  281.   can optionally set up clipboards to use a push down stack that
  282.   will hold multiple clipboard contents in a First-In-First-Out
  283.   (FIF0) stack. CMaster also has up to four temporary placemarkers
  284.   that temporarily mark a place holder in the current source file
  285.   without being recorded in the resource fork for later use.
  286.   Placemarkers show the line marked plus a few surrounding lines in
  287.   a mini-window if you click in the lower half of the place marker
  288.   icon. This is useful when you need to reference another function
  289.   (or code segment) in the same file because it eliminates jumping
  290.   back and forth and reduces the need for split windows in the THINK
  291.   C editor.
  292.  
  293.   Although the bulk of CMaster's functions are editor-related, I
  294.   most appreciated the other functions. THINK C 5.0.x can take
  295.   advantage of source code control information from Apple's MPW
  296.   Projector tool. This was a great step forward for those of us who
  297.   use both THINK C and MPW. I don't know how many times I was using
  298.   MPW Projector for source code control and inadvertently changed
  299.   the source using THINK C. CMaster has two window preferences
  300.   settings that help out - "Make files outside project read-only"
  301.   and "Make locked files read-only." Both options make the files
  302.   appear to be Projector read-only files, which helps prevent stupid
  303.   mistakes like accidentally changing a source file in the wrong
  304.   environment. I find this especially helpful when working with the
  305.   THINK Class Library (TCL), an ungodly amount of source code that
  306.   I'm constantly looking at via the editor. These files are
  307.   unprotected from inadvertent changes, the slightest of which can
  308.   be next to impossible to locate and will render your application
  309.   worthless. Also, the "Make locked files read-only" option protects
  310.   you from trying to change a source file only to find out on saving
  311.   that the file was locked. Don't laugh - it happens!
  312.  
  313.   The "Open Project Resource File Warning" can also save you time.
  314.   It warns you when you try to build or run a THINK project with the
  315.   resource file still open in a resource editor. Normally THINK C
  316.   would build or run the application without loading any resources,
  317.   most likely resulting in a bus error when the application runs.
  318.  
  319.  
  320. Problems
  321.   The only flaky behavior I discovered was in the "Show Preceding
  322.   Comments" option. This feature displays at the top of the window
  323.   any comments directly before a function definition (and therefore
  324.   its marker) when you select the marker for the function and scroll
  325.   the window to show the function. This works well if there actually
  326.   are comments before the function; however, if the comments sit
  327.   between the function definition and the opening curly bracket,
  328.   CMaster places the function definition line just out of view.
  329.   Jersey Scientific indicated that they would fix the problem in the
  330.   next update [it was]. Most people will find this feature useful since
  331.   comment headers describing functions are commonly placed
  332.   immediately preceding the function, and in fact, Symantec
  333.   commented the TCL this way.
  334.  
  335.  
  336. Improvements
  337.   I asked if Jersey Scientific might add the capability to search
  338.   MPW 411 style help files, which are generic text-only kind of open
  339.   format help files so users can create their own help files. This
  340.   kind of 411-lookup feature would provide some way to access custom
  341.   help from within the THINK environment. Jersey Scientific
  342.   mentioned that they were hard at work on a major upgrade of
  343.   CMaster, but they don't think it will be ready to ship until later
  344.   this year. (They noted that this is NOT an announcement, but
  345.   rather that they were working on a new set of features that they
  346.   hope will be CMaster 2.0.) This new version may have a feature
  347.   that would let users write their own extensions to CMaster that
  348.   would support MPW 411 files. Interesting thought - an extension to
  349.   an extension of THINK C!
  350.  
  351.   CMaster could take better advantage of color. Jersey Scientific is
  352.   aware of this deficiency and discussions with them indicate that
  353.   the next release will better support color. I would particularly
  354.   like to see CMaster use color styles for functions, keywords, and
  355.   comments. This can greatly increase the readability of source
  356.   code, and although it would add significantly to CMaster's parsing
  357.   responsibilities, high-end development tools like ACIUS
  358.   ObjectMaster already have such capabilities.
  359.  
  360.  
  361. Overall
  362.   This is not a complete discussion of CMaster's every feature. I
  363.   only mentioned the main ones and those that I found particularly
  364.   interesting. Almost all the features have some kind of option key
  365.   variant that makes them more useful than it seems at first glance.
  366.  
  367.   Jersey Scientific responded quickly to email queries and even
  368.   answered their tech support line. They post CMaster updates in the
  369.   THINK C file section on CompuServe, and from there to sumex-
  370.   aim.stanford.edu for anonymous FTP. Jersey Scientific prefers that
  371.   you use the CompuServe address if possible, especially from the
  372.   Internet.
  373.  
  374.   Is CMaster worth [Version 1.0 price], or about a third of THINK C's street
  375.   price? It significantly enhances the THINK C environment in ways
  376.   that will probably save you time and aggravation. If you use THINK
  377.   C on a weekly basis, CMaster is necessary. If you use THINK C
  378.   daily you will save yourself [Version 1.0 price] worth of your time in the
  379.   first week.
  380.  
  381.   The real question is how much, if any, of this functionality will
  382.   be included in THINK C 6.0, which is rumored for release this
  383.   spring (MacWEEK 15-Feb-93). Jersey Scientific cannot, for non-
  384.   disclosure reasons, say anything about even the existence of THINK
  385.   C 6.0, much less its features. Jersey Scientific did say that they
  386.   will do their best to release a compatible version as soon as
  387.   possible after Symantec ships a major upgrade to THINK C. This
  388.   will most likely be version 1.2, and will resemble 1.0.9 in terms
  389.   of features, although it will drop support for THINK C 4.x (THINK
  390.   C 5.x and 6.x will be supported). New users can expect the price
  391.   of CMaster to increase with version 1.2, but upgrades will be
  392.   provided at nominal cost.
  393. ---
  394.